import chop3DuoTai.Cat;
import chop3DuoTai.Dog;
import chop3DuoTai.Master;
import chop3DuoTai.Pet;

/**
 * @Description: TODO
 * @author: muxiongxiong
 * @date: 2021年07月06日 10:26
 * 公众号：雄雄的小课堂
 * 博客：https://blog.csdn.net/qq_34137397
 * 个人站：http://www.穆雄雄.com
 * 个人站：http://www.muxiongxiong.cn
 */
public class Test4 {

    public static void main(String[] args) {

        //创建主人的对象
        Master master = new Master("小李", 10000);
        //创建狗狗的对象
        Dog dog = new Dog("旺财", 100, 100, "哈士奇");
        //创建猫的对象
        Cat cat = new Cat("豆豆", 100, 100, "黄色");
        //主人喂狗
        master.feed(dog);
        //主人喂猫
        master.feed(cat);

        //主人喂宠物
        System.out.println("主人喂宠物的调用");
        //自动类型转换，向上转型
        Pet p = new Dog("大黄", 100, 100, "柯基");
        master.feedPet(p);
        Pet c = new Cat("花花", 100, 100, "花色");
        master.feedPet(c);

        //将父类对象强制转换成子类（向下转型，强制类型转换）
        Dog d = (Dog) p;
        d.play();
        Cat ca = (Cat) c;
        ca.maoxian();

        /*Pet d1 = new Dog();
        d1.eat();
        Cat c1 = (Cat) d1;
        c1.maoxian();*/

        System.out.println("*******************************");
        //instanceof运算符的用法
        Pet pp = new Cat();
        if (pp instanceof Dog) {
            Dog d1 = (Dog) pp;
            d1.play();
        } else if (pp instanceof Cat) {
            Cat c1 = (Cat) pp;
            c1.maoxian();
        }


    }


}
